package activitis;

import utils.PreferencesHelper;

import com.example.baserapitaxi.BaseMainActivity;
import controladores.ControladorViajes;

import entidades.Viaje;

import android.annotation.SuppressLint;
import android.content.Intent;
import android.os.AsyncTask;
import android.util.Log;

@SuppressLint("NewApi") 
public class MainActivity extends BaseMainActivity
{    
	/**
	 * Async que busca el viaje activo del chofer. Si este existe, inicia InfoViajeActivity. De lo contrario, TurnoActivity.
	 * @author fcarou
	 */
    private class BuscarViaje extends AsyncTask<Void, Void, Void>
    {
    	private Class<?> iniciar;
    	
    	@Override
    	protected void onPreExecute()
    	{
    		super.onPreExecute();
    	}
    	
		@Override
		protected Void doInBackground(Void... params)
		{
			// Obtengo el ID del chofer logueado, si lo hay.
			long id = new PreferencesHelper(getApplicationContext()).leerID();
			
			Log.i("LOG", "ID encontrado: " + id);
			
			// Si es menor a 1, no hay chofer logueado.
			if (id < 1)
				iniciar = LoginChoferActivity.class;
			else
			{
				// Verifico si el chofer logueado esta en viaje o no.
				Viaje viaje = new ControladorViajes().getViajeChofer(id);
				
				if (viaje == null)
					// Si NO esta en viaje, voy a la pantalla de turno.
					iniciar = TurnoActivity.class;
				else
					// Si SI esta en viaje, levanto la pantalla de viaje.
					iniciar = InfoViajeActivity.class;
			}
			
			return null;
		}
		
		@Override
		protected void onPostExecute(Void result)
		{
			if (iniciar != null)
			{
				Intent intent = new Intent(MainActivity.this, iniciar);
				super.onPostExecute(result);
				startActivity(intent);
			}
			
			finish();
		}
    }

	@Override
	protected void continuar()
	{
		 new BuscarViaje().execute();
	}
}
